<template>
    <div>
        <h3>- &lt;script&gt;标签打开defer或async属性，脚本就会异步加载</h3>
        <p>defer是“渲染完再执行”，async是“下载完就执行”，如果有多个defer脚本，会按照它们在页面出现的顺序加载，而多个async脚本是不能保证加载顺序的</p>
        <p>浏览器加载 ES6 模块,也使用&lt;script&gt;标签，但是要加入type="module"属性 效果等同于 defer</p>
        <h3>- ES6 模块与 CommonJS 模块的差异</h3>
        <p>1、CommonJS 模块输出的是一个值的拷贝，ES6 模块输出的是值的引用</p>
        <p>2、CommonJS 模块是运行时加载，ES6 模块是编译时输出接口</p>
        <p>3、ES6 模块不会缓存运行结果，而是动态地去被加载的模块取值，并且变量总是绑定其所在的模块，所以不同的脚本加载这个模块，得到的都是同一个实例</p>
        <h3>- Node 加载 使用require 和 module.exports</h3>
        <h3>- ES6 模块的循环加载 (两模块间相互引用)</h3>
        <p>使用函数提升 注意函数表达式是不能提升的</p>
        <h3>- ES6 模块的转码</h3>
        <p>浏览器目前还不支持 ES6 模块 使用 Babel 或者 SystemJS 转成 ES5 或者 使用 ES6 module transpiler 转码器 转码</p>
    </div>
</template>

<script>
export default {
    
}
</script>

<style scoped>

</style>